home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4 / Atari Forever 4.iso / PD_THEMA / CLI / CLI_TOOL.S / TUNIX / TUNIX.TXT < prev    next >
Encoding:
Text File  |  1998-03-14  |  17.6 KB  |  375 lines

  1.  
  2.                     ****************************
  3.                     *                          *
  4.                     *        TUNIX V1.0        *
  5.                     *                          *
  6.                     ****************************
  7.                     * Tools für Programmierer  *
  8.                     *      und effiziente      * 
  9.                     *   Festplattenbenutzung   *
  10.                     ****************************
  11.  
  12.  
  13. TUNIX ist in Bedienung und 'Philosophie' meinem PD-Programmpaket LINGUIX
  14. verwandt. Hier in TUNIX sind jedoch Programme enthalten, die zum
  15. Textverarbeitungs-orientierten LINGUIX konzeptuell nicht passen.
  16.  
  17. Hinter TUNIX verbergen sich einige schnelle, kleine, praktische Werkzeuge, die
  18. va. für die ST-Benutzer-Elite: für die Anhänger von Command-Line-Interpretern
  19. (= CLI) im Festplattenbetrieb interessant sein dürften.  Einige speziellere
  20. Programme sind aber in erster Linie als Programmiererwerkzeuge geeignet.
  21.  
  22. Leute, die zur 'Elite' zählen wollen, aber noch nicht können, finden mit meiner
  23. Einführung 'TTP_KURS.DOC' vielleicht einen Einstieg. Zudem kann ich den Public
  24. Domain CLI GULAM, als universal geeignete Shell, wärmstens empfehlen.
  25.  
  26. TUNIX ist in TURBO C 1.1 auf TOS 1.3 programmiert. Die meisten Programme werden
  27. vermutlich auch auf TOS 1.4 problemlos laufen.
  28.  
  29. TUNIX V1.0 ist public Domain.
  30.  
  31.  
  32.  
  33. TUNIX V1.0 enthält folgende Programme:
  34.  
  35. ARCH          Gezielte Archivierung neuer Dateien und Archivbitmanipulation
  36. AUTBATCH      Flexiblere Abarbeitung des Auto-Ordners
  37. DATTIM90      Automatische Datumseinstellung (Eingabe nur bei Bedarf)
  38. DUMP          Datei-Dump-Funktion (schneller read-only Disk-Monitor)
  39. FIND          Ausgreifende Suche nach Dateien mit bestimmten Namensteilen
  40. GETCLM        Ausfiltern einzelner Kolumnen aus einer Datei
  41. MKCMD         Texte/Tabellen extrahieren und zu Kommandozeilen ergänzen
  42. RESET0        Reset auslösen (Festplatten-Hochfahrzeit überbrücken)
  43. RM_ORD        Schnelles Ordner-Löschen in CLIs
  44. VSIZE         Ausführliche Infos über Ordner
  45. XTOD          Zahlensystem-Umrechnungs-Funktion für Wertlisten-Dateien
  46. ZALUM         Zahlensystem-Umrechnungs-Funktion für einzelne Werte
  47. ZS            Ausgabe des Atari-Zeichensatzes mit (Hex|Dez|Okt)-Code
  48.  
  49.  
  50.  
  51.  
  52.  
  53.             DOKUMENTATION
  54.             -------------
  55.  
  56.  
  57. ------------------------------------------------------------------------------
  58. ARCH.TTP      Gezielte Archivierung neuer Dateien und Archivbitmanipulation
  59. arch [-d] [-n] [-s] [-u] [-x] [ordner ... ] [-o datei]
  60.     -d:        Archivbits loeschen.
  61.     -n:        Ausgabe aller unarchivierten (Standard).
  62.     -s:        Archivbits setzen.
  63.     -u:        Archiv-Update nach a:\archiv und Archivbits setzen.
  64.     -x:        Sicherheitsabfragen abstellen.
  65.     -o datei:    Ausgabe aller unarchivierten in 'datei'.
  66.  
  67. Arch eignet sich va. zur schnellen und gezielten Archivierung von
  68. Festplattenlaufwerken: Arch (mit Schalter -u) kopiert immer nur die Dateien
  69. (immer nach a:\archiv\), die sich seit der letzten Archivierung geändert haben
  70. oder neu hinzugekommen sind (-u). TOS führt für jede Datei ein Archivbit, das
  71. von guten Archivierungsprogrammen beim Archivieren jedesmal gesetzt wird. Bei
  72. Schreib-Zugriffen anderer Programme wird dieses Bit jedesmal gelöscht (leider
  73. nicht bei Anhänge-Zugriffen: TOS-Fehler?). (In GULAM sieht man das Bit beim
  74. List-Kommando "ls -l": Wenn es gesetzt ist, hat die betreffende Dateizeile als
  75. erstes Zeichen ein 'm', wenn nicht, einen Strich '-').
  76.  
  77. Die übrigen Schalter von arch dienen zur Anzeige der Namen der geänderten
  78. Dateien (-n oder kein Schalter), dem löschen (-d) oder dem setzen (-s) dieses
  79. Archivbits.
  80.  
  81. Arch überprüft immer alle Dateien, die sich im Dateisystem unterhalb des
  82. angegebnene Verzeichnisses (ordner) befinden. (Wenn kein 'ordner' angegeben
  83. ist, wirkt arch immer ab aktuellem Ordner). Wenn Sie ein Dateisystem mit den
  84. Laufwerken c: d: e: f: besitzen, dann schreibt ihnen z.B. der Befehl
  85.     arch c: d: e: f: -o f:\out
  86. die Namen aller neuen oder geänderten Dateien ihres gesamten Dateisystems in
  87. die Datei f:\out. (Schalter -o ist nur bei -n oder keinem Schalter sinnvoll). 
  88. Arch stellt bei den Schaltern -d -s und -u eine Sicherheitsabfrage, ob die
  89. Archivbits tatsächlich verändert bzw. ob archiviert werden soll. Mit -x läßt
  90. sich diese Sicherheitsabfrage unterdrücken (für prozedurale Anwendungen).
  91.  
  92. Die eigentliche Archivierung (-u) kopiert alle angesprochenen unarchivierten
  93. Dateien immer nach a:\archiv\.  ACHTUNG: Dieses Archiv enthält keine
  94. Unterverzeichnisse, dh. im bearbeiteten Dateisystembaum sollte jeder einfache
  95. Dateiname nur einmal vorkommen: gleichnamige Dateien auf unterschiedlichen
  96. Pfaden überschreiben sich in a:\archiv gegenseitig. Dies ist der einzige
  97. Nachteil des Verfahrens. Arch ist deshalb auch kaum für das jährliche
  98. Voll-Backup geeignet, sondern vor allem für die täglich/wöchentliche
  99. Zwischensicherung.
  100.  
  101. Wenn a:\archiv voll ist, bricht arch ab. Legen Sie dann eine neue Disk in
  102. Laufwerk a:, erzeugen den Ordner 'archiv' und wiederholen den arch-Befehl:
  103. weiter geht's bei der Datei, die nicht mehr ins vorige Archiv gepaßt hat.
  104.  
  105. Arch komprimiert die Dateien nicht. Hierfür gibt es bereits gute Programme.
  106. Arch ist jedoch außerordentlich schnell: In wenigen Minuten hat man gezielt die
  107. Arbeit der letzten Zeit gesichert; mit einem einzigen Befehl:
  108.     arch -u -x c: d: e: f: [ g: ...]
  109.  
  110.  
  111. ------------------------------------------------------------------------------
  112. AUTBATCH.PRG  Flexiblere Abarbeitung des Auto-Ordners
  113.  
  114. Wenn einem die unmögliche Methode des TOS bei der Reihenfolge der Abarbeitung
  115. des Autoordners stinkt, dann bietet autbatch Abhilfe. Autbatch wertet eine
  116. Text-Datei auto.bat aus, die sich ebenfalls im Autoordner befinden muß.  Die
  117. Datei auto.bat enthält zeilenweise die kompletten Pfadnamen der Programme, die
  118. beim Systemstart abgearbeitet werden sollen, z.B:
  119.  
  120. c:\bin\qmouse.prg
  121. c:\bin\night.prg
  122. #c:\bin\fselect.prg         derzeit auskommentiert
  123. c:\bin\dattim90.prg
  124.  
  125. Natürlich bestimmt dabei die Reihenfolge der Programmnamen die Reihenfolge der
  126. Abarbeitung; und nicht das Dateidatum (TOS). Es müssen keine Dateien mehr hin
  127. und her kopiert werden.
  128.  
  129. Kommentarzeilen in auto.bat sind möglich: Sie beginnen mit einem Doppelkreuz
  130. (#) immer in der ersten Spalte der Kommentarzeile.
  131.  
  132.  
  133. ------------------------------------------------------------------------------
  134. DATTIM90.TTP  Automatische Datumseinstellung (Eingabe nur bei Bedarf)
  135. dattime [-c] [-d] [-i]
  136.  
  137. datim90 mit Schalter -i fordert in jedem Fall zur Eingabe von Datum / Uhrzeit
  138. auf.
  139. Ohne Schalter -i wird immer erst das Datum des Tastaturprozessors überprüft.
  140. Wenn dieses neuer als das TOS-Datum ist (Warmstart), wird es automatisch
  141. übernommen. Andernfalls fordert datim90 zur Neueingabe von Datum (-d) oder
  142. Uhrzeit (-t) oder beidem auf (weder -d noch -t oder beide zugleich).
  143.  
  144. VERWENDUNG: dattim90 ist m.W. nur für Rechner ohne Batterieuhr interessant: Der
  145. Befehl "datim90 -d" steht in meiner GULAM-Start-Up-Datei gulam.g. 
  146. dattim90.ttp kann aber auch als dattim90.prg im Auto-Ordner verwendet werden. 
  147. Hier natürlich ohne Schalteroptionen.
  148.  
  149. dattim90 vergibt bei der manuellen Eingabe automatisch das Jahr 1990. Das
  150. mitgelieferte dattim91 vergibt 1991. Wer 1992 noch lebt, der kann sich die
  151. erforderliche Version mit einem Diskmonitor anhand der Differenz vielleicht
  152. selbst erpatchen.
  153.  
  154.  
  155. ------------------------------------------------------------------------------
  156. DUMP.TTP      Datei-Dump-Funktion (schneller read-only Disk-Monitor)
  157. dump [-d] [-x] [-s] [-P] DATEI [ DATEI ...] [-o datei]
  158.     -d    Dezimaldump
  159.     -x    Hexadezimaldump
  160.     -P    direkt auf Drucker ausgeben
  161.     -s    Ohne Schalter -s werden die ASCII-Zeichen über 126 in der
  162.         Ausgabe als Punkt '.' wiedergegeben (damit die Ausgabedatei
  163.         ohne Probleme gedruckt werden kann. -s führt zu einer
  164.         adäquaten Wiedergabe dieser (-s) Sonderzeichen.
  165.     -o datei Ausgabe in datei statt auf Bildschirm.
  166.  
  167. Die Ausgabe von Dump ist anders formatiert als in Disk-Monitoren üblich. Ich
  168. finde es aber auch so mal recht nützlich: Die Zeichen stehen jeweils direkt
  169. über ihrem Code. Die Ausgabe auf den Bildschirm wartet nach jeder vollen
  170. Bildschirmseite auf Tastendruck. Abbruch ist durch CONTROL-C möglich.
  171.  
  172.  
  173. ------------------------------------------------------------------------------
  174. FIND.TTP      Ausgreifende Suche nach Dateien mit bestimmten Namensteilen
  175. find PATTERN [ordner ordner ...] [-o datei]
  176.     PATTERN:    Muster des gesuchten Dateinamens (immer 1. Parameter)
  177.     -t        Alle Dateinamen ausgeben (alternativ zu PATTERN)
  178.     ordner:        Suche ab Verzeichnis ordner.
  179.     -o datei:    Ausgabe aller gefundenen Dateien in 'datei'.
  180. Wie auch arch.ttp untersucht find.ttp nur den Teil des Dateisystembaums, der
  181. sich ab und unter den/dem angegebenen Verzeichnis(sen) 'ordner' befindet: Ist
  182. f:\txt\ angegeben, findet "find kleist f:\txt" alle Dateien ab f:\txt\, in
  183. deren Name der String kleist vorkommt, z.B f:\txt\kleist.doc,
  184. f:\txt\brief\kleist_10.bak; nicht jedoch f:\kleist oder f:\docs\kleist.brf.
  185.  
  186. Ist kein 'ordner' angegeben, sucht find ab aktuellem Verzeichnis.
  187.  
  188. Mit "find -t a: b: c: d: e: f: g: [...]" erhalten Sie eine Ausgabe, die alle
  189. Dateien Ihres Systems mit ihrem absoluten Pfadnamen enthält. 
  190.  
  191.  
  192. ------------------------------------------------------------------------------
  193. GETCLM.TTP    Ausfiltern einzelner Kolumnen aus einer Datei
  194. (get-column)
  195. getclm -'ziffer'['ziffer'...] DATEI [ DATEI ...] [-o datei]
  196.     -'ziffer'     ziffer 0-9: 0 für erste Kolumne, 1 für zweite, ...
  197.     DATEI        Spacegetrennte Kolumnen 'ziffer' werden ausgegeben.
  198.     -o datei    Ausgabe in datei statt auf Bildschirm.
  199.  
  200. Beispiel:    getclm -034 file -o clm.out
  201. Dieser Befehl holt die erste, vierte und fünfte Kolumne jeder Zeile aus der
  202. Datei file und schreibt sie in die Datei clm.out. Jede Kolumne ist in der
  203. Ausgabedatei durch ein Leerzeichen von der nächsten getrennt.
  204. In der Eingabe-DATEI bedeutet 'Kolumne' alle sichtbaren Zeichen(folgen), die
  205. zwischen beliebig vielen Space-Zeichen (Blank,Tab) stehen. Wenn eine Zeile mit
  206. Space beginnt, dann zählt das erste sichtbare Zeichen bereits zur Kolumne 2
  207. (Nr.1). Als höchste Kolumne kann die 10te angegeben werden (Nr.9).
  208.  
  209.  
  210. ------------------------------------------------------------------------------
  211. MKCMD.TTP     Texte/Tabellen extrahieren und zu Kommandozeilen ergänzen
  212. (make-command)
  213. mkcmd [-'zahl'] [-f] [-l] [-p [-\]] [-v'CMD'] [-ha|c'PARAM'] DATEI [...] 
  214.      -'zahl'     Space-Getrennte DATEI-Kolumnenummer von Wort (Def:1).
  215.      -f          Dateinamen aus DATEI-Text herausfiltern.
  216.      -l          Ganze Zeile aus DATEI-Text weiterverwenden.
  217.      -p          Pfadnamen aus DATEI-Text herausfiltern.
  218.      -\          Pfadnamen immer mit \ abschließen.
  219.      -v'CMD'     Einfüge-Zeichenkette vor Blank und Listenwort.
  220.      -ha'PARAM'  Anhänge-Zeichenkette hinter Blank und Listenwort.
  221.      -hc'PARAM'  Cat-Zeichenkette direkt hinter Listenwort.
  222.      -o datei     Ausgabe in datei statt auf Bildschirm.
  223.  
  224. -'zahl', -f, -l und -p sind alternativ.
  225.  
  226. mkcmd tut zweierlei: erstens extrahiert es je Zeile einen positionell
  227. bestimmbaren String (Wort) aus der Eingababedatei. Zweitens hängt es in der
  228. Ausgabe vor und/oder hinter diesem Wort je einen angebbaren String an: So
  229. können gleichförmige Kommandozeilen oder andere Tabellen über je ein
  230. unterschiedliches Wort automatisch generiert werden.
  231.  
  232. EXTRAHIEREN:
  233. Ohne Schalter gibt mkcmd das erste Wort jeder Zeile von Datei aus. Mit Schalter
  234. -2 jedes zweite, mit -3 jedes dritte .... Worte sind für mkcmd alle
  235. zusammenhängenden sichtbaren  ASCII-Zeichen. Worte sind also Kolumnen, die je
  236. durch Space(s) getrennt sind.
  237.  
  238. Mit Schalter -l 'filtert' mkcmd die gesamte Zeile von Datei aus. Es wird also
  239. hier kein Zeilenteilstring extraheriert, sondern der gesamte Zeileninhalt kann
  240. vorne (-v...) und/oder hinten (-h...) um einen angebbaren String ergänzt
  241. werden.
  242.  
  243. Mit Schalter -f sucht mkcmd gezielt nach einfachen Dateinamen in Datei: Als
  244. solche werden erkannt: Strings, die einen Punkt, direkt umgeben von sichtbaren
  245. Zeichen, enthalten; und Strings, die direkt  auf einen Gegenschräger '\'
  246. folgen. Je Zeile wird nur der letzte passende String ausgegeben.
  247.  
  248. Mit Schalter -p sucht mkcmd gezielt nach relativen und absoluten Pfadnamen in
  249. Datei:  Hier wird jedoch nur nach dem ersten in jeder Zeile gesucht. Als
  250. Pfadnamen werden erkannt: geschlossene Strings die einen Gegenschräger '\'
  251. enthalten. Wenn zusätzlich Schalter -\ gesetzt ist, wird jeder Ausgabestring
  252. mit einem Gegenschräger abgeschlossen.
  253.  
  254. ERGÄNZEN:
  255. Durch "-vWORT" geben Sie mit WORT einen String an, der - durch Blank getrennt -
  256. vor dem aus DATEI extrahierten Wort in die Ausgabezeile geschrieben wird.
  257.  
  258. Durch "-h?WORT" geben Sie mit WORT einen String an, der hinter dem aus DATEI
  259. extrahierten Wort in die Ausgabezeile geschrieben wird. Entweder muß direkt
  260. auf -h ein 'a' oder ein 'c' folgen: Durch 'a' wird das Wort - getrennt durch
  261. Blank - hinter den extrahierten String angehängt. Durch 'c' wird es
  262. concateniert, dh. direkt mit dem extrahierten String verbunden.
  263.  
  264. VERWENDUNG:
  265. Aus listenförmigen Ausgaben anderer Programme (ls, grep, find etc) können
  266. automatisch neue Prozeduren generiert werden, ohne viel Tiparbeit.
  267.  
  268.  
  269. ------------------------------------------------------------------------------
  270. RESET0.PRG    Reset auslösen (Festplatten-Hochfahrzeit überbrücken)
  271.  
  272. Die resetX.prg-Programme lösen (nach unterschiedlicher Wartezeit) einfach nur
  273. einen Reset aus.
  274.  
  275. VERWENDUNG:
  276. Festplattenbesitzer können mit reset0.prg billig und schnell die Wartezeit beim
  277. Hochfahren der Festplatte überbrücken.  Einfach das Programm in ein leeres
  278. a:\auto\ kopieren.  Wenn nun die Diskette mit \auto\reset0.prg beim nächsten
  279. gemeinsamen Einschalten von ST und Festplatte im Laufwerk a: liegt, dann
  280. startet der Rechner das Reset-Programm: nach einer gewissen Wartezeit wird der
  281. Reset ausgelöst und der Rechner startet erneut.  Mittlerweile ist allerdings
  282. die Festplatte hochgefahren: Also bootet der Rechner jetzt von der
  283. Festplatten-Partition (falls bootfähig) und ignoriert diesmal
  284. a:\auto\reset0.prg.
  285.  
  286. VERSIONEN:
  287. Die enthaltenen Versionen reset0.prg, reset2.prg und reset4.prg unterscheiden
  288. sich nur in der Zeit, die bis zur Auslösung des Reset vergeht: reset0.prg löst
  289. den Reset sofort aus, während reset2.prg und reset4.prg zunächst in eine 2 bzw.
  290. 4 Sekunden lange Warteschleife springen und erst danach den Reset auslösen.
  291. Probieren Sie selbst, welches Programm für ihre Festplatte geignet ist.
  292.  
  293. ACHTUNG: Das gemeinsame Einschalten von Rechner und Festplatte kann nach
  294. Herstellerangaben eventuell zu Hardware-Schäden führen.  Mit meiner
  295. Vortex HD20+ am Atari 520ST+ ist bisher nichts passiert.  Garantieren
  296. kann ich freilich nichts.
  297.  
  298.  
  299. ------------------------------------------------------------------------------
  300. RM_ORD.TTP    Schnelles Ordner-Löschen in CLIs
  301. rm_ord ordner
  302. Als Parameter ist ein (!) Ordner anzugeben.
  303.  
  304. VERWENDUNG: Das Löschen ganzer Ordner samt Inhalt ist in einigen CLIs recht
  305. aufwendig: Einer der seltenen Augenblicke, in denen man sich ins GEM
  306. zurücksehnt. rm_ord schließt diese CLI-Komfortlücke.
  307.  
  308.  
  309. ------------------------------------------------------------------------------
  310. VSIZE.TTP     Ausführliche Infos über Ordner
  311. vsize ordner [ ordner ... ] 
  312.  
  313. vsize gibt in je einer Zeile Informationen über die angegebenen Ordner aus.
  314. Die Abkürzungen der Ausgabetabelle bedeuten:
  315.     DB:    Anzahl der tatsächlichen Datenbytes von Ordner
  316.     mbB:      "     "  minimal belegten Bytes durch Ordner auf Laufwerk 
  317.     Cl:       "     "  belegten Cluster 
  318.     D:      "     "  enthaltenen Dateien 
  319.     V:      "     "  enthaltenen Dateiverzeichnisse (Unterordner)
  320.  
  321.  
  322. ------------------------------------------------------------------------------
  323. XTOD.TTP      Zahlensystem-Umrechnungs-Funktion für Wertlisten-Dateien
  324.  
  325. xtod [-k*] [-qo|d|x] [-t*|-b] [-zo|d|x] DATEI [DATEI ...] [-o datei] 
  326.  
  327.      -k*        Auf -k folgt das Zeichen für Kommentaranfang.
  328.      -qo|d|x    Quelle ist o(oktal) | d(dezimal) | x(hexadez.) (Def:x).
  329.      -t*        Auf -t folgt Zeichen für den Werte-Trenner (Def:',').
  330.      -b         Werte-Trenner ist Leerzeichen (ASCII 32).
  331.      -zo|d|x    Ziel ist o(oktal) | d(dezimal) | x(hexadez.) (Def:d).
  332.      -o    datei    Ausgabe in datei statt auf Bildschirm.
  333.      DATEI      EingabeDATEI: Trenner/Return-getrennte Werteliste.
  334.  
  335. Wenn eine größere Menge von Zahlenwerten, die in einer Datei stehen, in ein
  336. anderes Zahlensystem umgerechnet werden muß, dann ist xtod geeignet. Beispiel:
  337.  
  338. Die gulam Kommandozeile "xtod -qx -zd '-k*' printer.hex" konvertiert in wenigen
  339. Sekunden eine 1ST_WORD-Druckertabelle printer.hex in eine Liste von
  340. entsprechenden dezimalen Werten.
  341.  
  342.  
  343. ------------------------------------------------------------------------------
  344. ZALUM.TTP     Zahlensystem-Umrechnungs-Funktion für einzelne Werte
  345. zalum [b][d][h][o] WERT
  346. b, d, h und o geben an, in welchem Zahlensystem der folgende WERT gesetzt ist.
  347. zalum interpretiert diesen WERT und gibt ihn in den vier Zahlensystemen aus:
  348. Der Befehl "zalum h 4ff" erzeugt die Ausgabe:
  349. Binär:       10011111111
  350. Oktal:       2377
  351. Dezimal:     1279
  352. Hexadezimal: 4FF
  353. Wenn ein Zeichen von WERT nicht zum davor angegebenen Zahlensystem paßt (zB.
  354. "zalum o 349"), erfolgt eine Fehlermeldung.
  355. Achtung: vor  b, d, h und o  ist nicht der für Schalter sonst übliche
  356. Bindestrich anzugeben.
  357. Wenn Sie mehrere Werte umrechnen wollen, verwenden Sie xtod.ttp
  358.  
  359.  
  360. ------------------------------------------------------------------------------
  361. ZS.TTP        Ausgabe des Atari-Zeichensatzes mit (Hex|Dez|Okt)-Code
  362. zs [-d] [-x] [-k] [-o datei]
  363.     -d:        Zeichensatzausgabe mit Dezimalcode (Standard).
  364.     -k:        Zeichensatzausgabe mit Oktalcode.
  365.     -x:        Zeichensatzausgabe mit Hexadezimalcode.
  366.         -o datei    Ausgabe in datei statt auf Bildschirm.
  367.  
  368.  
  369.  
  370.  
  371.  
  372.                         München, November 1989
  373.  
  374. Hans Kaufmann, Einsteinstr. 151, 8 München 80
  375.